nodejs连接mongodb的问题
因为初学,跟着书本开始学习使用node-mongodb-native驱动器来操纵mongodb
但是还是因为书本使用的mongodb驱动估计太老旧,采取书本和多数网上的链接方式均报出如下错误
var server = new mongodb.Server('127.0.0.1', 27017, {}); new mongodb.Db('test', server, {}).open(function (err, client) { if (err) throw err; console.log('\033[96m + \033[39m connected to mongodb'); app.users = new mongodb.Collection(client, 'maning'); app.listen(3000, function () { console.log('\033[96m + \033[39m app listening on *:3000'); }); })
报错:大概意思是集合名应该为字符串
D:\Program Files\PM25>node index.js + connected to mongodb Error: collection name must be a String at Error (native) at checkCollectionName (D:\Program Files\PM25\node_modules\mongodb\lib\utils .js:70:11) at new Collection (D:\Program Files\PM25\node_modules\mongodb\lib\collection .js:59:3) at D:\Program Files\PM25\index.js:59:19 at D:\Program Files\PM25\node_modules\mongodb\lib\db.js:227:5 at connectHandler (D:\Program Files\PM25\node_modules\mongodb\lib\server.js: 280:7) at g (events.js:260:16) at emitOne (events.js:77:13) at emit (events.js:169:7) at D:\Program Files\PM25\node_modules\mongodb\node_modules\mongodb-core\lib\ topologies\server.js:408:23 D:\Program Files\PM25\node_modules\mongodb\lib\server.js:283 process.nextTick(function() { throw err; }) ^ Error: collection name must be a String at Error (native) at checkCollectionName (D:\Program Files\PM25\node_modules\mongodb\lib\utils .js:70:11) at new Collection (D:\Program Files\PM25\node_modules\mongodb\lib\collection .js:59:3) at D:\Program Files\PM25\index.js:59:19 at D:\Program Files\PM25\node_modules\mongodb\lib\db.js:227:5 at connectHandler (D:\Program Files\PM25\node_modules\mongodb\lib\server.js: 280:7) at g (events.js:260:16) at emitOne (events.js:77:13) at emit (events.js:169:7) at D:\Program Files\PM25\node_modules\mongodb\node_modules\mongodb-core\lib\ topologies\server.js:408:23
网上很多博文都有这个错误的发生,但是没有解决的回复,本能是马上去github找原著
还真的发现我又犯傻了,人家在node-mongodb-native2.0的推荐链接方式已经和书上的完全不同
当然我没有看过变更履历,这也是小白的做法,但是长了记性,就是跟着书学编程是不靠谱的。。。凡是找API或者github原著
看过官方的方法后尝试,通过:
var MongoClient = require('mongodb').MongoClient , assert = require('assert'); // Connection URL var url = 'mongodb://localhost:27017/myproject'; // Use connect method to connect to the Server MongoClient.connect(url, function(err, db) { assert.equal(null, err); console.log("Connected correctly to server"); db.close(); });
我自己的连接测试:
var MongoClient = require('mongodb').MongoClient; var DB_CONN_STR = 'mongodb://localhost:27017/test'; MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("连接成功!"); });